package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Vector;

import modelo.Colaborador;
import modelo.GrupoColaborativo;
import modelo.Laboratorio;
import modelo.Producto;

import vista.VentanaGrupo;
import vista.VentanaListadoProyectos;

public class ControladorGrupo implements ActionListener{
	private VentanaGrupo vgr;
	private Laboratorio lab;

	public ControladorGrupo(Laboratorio labo) {
		
		vgr = VentanaGrupo.getInstancia();
		vgr.setVisible(true);
		vgr.setResizable(false);
		//vgr.setLocationRelativeTo(null);
		vgr.agregarListener(this);
		this.lab = labo;
		cargarListado();
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		if(e.getActionCommand().equalsIgnoreCase("Crear")){
			vgr.dispose();
			ControladorIncluirGrupo	cig = new ControladorIncluirGrupo(lab, null);
			cig.bloquearAceptar(true);
			
			}
		else if (e.getActionCommand().equalsIgnoreCase("Salir")){
			vgr.dispose();
			}
		else if (e.getActionCommand().equalsIgnoreCase("Eliminar")){
			if (vgr.obtenerCantidadDeFilas() == 0){
				vgr.mostrarMensaje("ERROR, No se ha seleccionado grupo colabortivo");
				return;
			}
			else 
				eliminarGrupo();
			}
		else if (e.getActionCommand().equalsIgnoreCase("Modificar")){
			if (vgr.obtenerCantidadDeFilas() == 0){
				vgr.mostrarMensaje("ERROR, No se ha seleccionado grupo colabortivo");
				return;
			}
			else {
				vgr.dispose();
				ControladorIncluirGrupo	cig = new ControladorIncluirGrupo(lab, obtenerObjetoGrupo());
				cig.cargarGrupos();
				cig.bloquearNombre(false);
				cig.bloquearCedResponsable(true);
				cig.bloquearGuardar(true);
				cig.bloquearAceptar(false);
				}
		}
	}

	//CARGAR LISTADO DE LOS GRUPOS EXISTENTES
	public void cargarListado(){
		for (int i = 0; i < lab.contarGrupo(); i++){
		Vector<String> listado = new Vector<String>(4,1);
		GrupoColaborativo gc = new GrupoColaborativo();
			if(gc.getStatus() == "E"){
				continue;
			}
			String cod = gc.getCodigoGrupo();
			String nomb = gc.getNombreGrupo();
			String responsable = gc.getColResponsable();
			listado.add(cod);
			listado.add(nomb);
			listado.add(responsable);
			vgr.cargarListado(listado);
		}
	}
	
	//ELIMINAR GRUPO COLABORATIVO
	public void eliminarGrupo(){
		int fila = vgr.obtenerIndiceFila();
		String cod = vgr.obtenerCodigo(fila);
		lab.eliminarGrupo(cod);
		vgr.mostrarMensaje("El Grupo Colaborativo Eliminado con Exito");
		vgr.dispose();
	}

	
	//OBTENER OBJETO GRUPO
	public GrupoColaborativo obtenerObjetoGrupo(){
		int fila = vgr.obtenerIndiceFila();
		String cod = vgr.obtenerCodigo(fila);
		GrupoColaborativo grupo = lab.buscarGrupo(cod);
		return grupo;
	}
}
